
`timescale 1ns / 1ns
module TrigonometricFuncTest   ; 

  reg  iRstN   ; 
  wire [31:0]  oData   ; 
  wire  oError   ; 
  reg  [1:0]  iFunc   ; 
  wire oBusy   ; 
  reg  iStartProcess   ; 
  reg  [31:0]  iData   ; 
  reg  iClk   ; 
  TrigonometricFunc DUT  ( 
       .iRstN (iRstN ) ,
      .oData (oData ) ,
      .oError (oError ) ,
      .iFunc (iFunc ) ,
      .oBusy (oBusy ) ,
      .iStartProcess (iStartProcess ) ,
      .iData (iData ) ,
      .iClk (iClk ) ); 



// "Constant Pattern"
// Start Time = 0 ns, End Time = 1 us, Period = 0 ns
  initial
  begin
	  iRstN  = 1'b1  ;
	 # 1000 ;
// dumped values till 1 us
  end


// "Clock Pattern" : dutyCycle = 50
// Start Time = 0 ns, End Time = 1 us, Period = 20 ns
  initial
  begin
	iClk  = 1'b0  ;
	repeat (50) begin
	  # 10	  iClk  = 1'b1  ;
	  # 10	  iClk  = 1'b0  ;
	end
// dumped values till 1 us
  end


// "Constant Pattern"
// Start Time = 0 ns, End Time = 1 us, Period = 0 ns
  initial
  begin
	  iStartProcess  = 1'b0  ;
	 # 20	  iStartProcess  = 1'b1  ;
	 # 20	  iStartProcess  = 1'b0  ;
	 # 960 ;
// dumped values till 1 us
  end


// "Constant Pattern"
// Start Time = 0 ns, End Time = 1 us, Period = 0 ns
  initial
  begin
	  iFunc  = 2'b10  ;
	 # 1000 ;
// dumped values till 1 us
  end


// "Constant Pattern"
// Start Time = 0 ns, End Time = 1 us, Period = 0 ns
  initial
  begin
	  iData  = 32'h3F5DB3D7; // sqrt(3)/2
	 # 1000 ;
// dumped values till 1 us
  end

  initial
	#1000 $stop;
endmodule
